// 导入os模块用于获取系统信息
const os = require('os');
// process模块无需导入，全局可用

// 打印CPU架构信息
console.log('CPU架构信息:', os.arch());

// 打印操作系统信息
console.log('操作系统平台:', os.platform());
console.log('操作系统类型:', os.type());
console.log('操作系统版本:', os.release());

// 打印进程ID信息
console.log('当前进程ID:', process.pid);

// 打印NodeJS可执行文件路径
console.log('NodeJS可执行文件路径:', process.execPath);

// 打印内存使用情况
console.log('\n内存使用情况:');
const memoryUsage = process.memoryUsage();
console.log('堆内存使用:', formatBytes(memoryUsage.heapUsed), `(总堆内存: ${formatBytes(memoryUsage.heapTotal)})`);
console.log('进程总内存使用:', formatBytes(memoryUsage.rss));
console.log('外部内存使用:', formatBytes(memoryUsage.external));

// 辅助函数：将字节数格式化为人易读的单位
function formatBytes(bytes, decimals = 2) {
    if (bytes === 0) return '0 Bytes';

    const k = 1024;
    const dm = decimals < 0 ? 0 : decimals;
    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];

    const i = Math.floor(Math.log(bytes) / Math.log(k));

    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
